package com.jl15988.simpletools.appcore.service;

import com.jl15988.simpletools.appcore.dto.CategoryDTO;
import com.jl15988.simpletools.appcore.dto.CategoryRequestDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 分类服务接口
 *
 * @author jl15988
 */
public interface CategoryService {

    /**
     * 获取所有分类
     *
     * @return 分类列表
     */
    List<CategoryDTO> getAllCategories();

    /**
     * 获取分类详情
     *
     * @param id 分类ID
     * @return 分类详情
     */
    CategoryDTO getCategoryDetail(Long id);

    /**
     * 创建分类
     *
     * @param request 分类请求DTO
     * @param icon 分类图标
     * @return 分类ID
     */
    Long createCategory(CategoryRequestDTO request, MultipartFile icon);

    /**
     * 更新分类
     *
     * @param request 分类请求DTO
     * @param icon 分类图标
     * @return 是否成功
     */
    boolean updateCategory(CategoryRequestDTO request, MultipartFile icon);

    /**
     * 删除分类
     *
     * @param id 分类ID
     * @return 是否成功
     */
    boolean deleteCategory(Long id);

    /**
     * 根据应用ID获取分类列表
     *
     * @param appId 应用ID
     * @return 分类列表
     */
    List<CategoryDTO> getCategoriesByAppId(Long appId);
} 